using System;
using System.Collections.Generic;
using System.Text;

namespace Multiplicity.Reflection {
    [MetadataTable(MetadataTableType.Field)]
    sealed class FieldRow : MetadataRow {

        public FieldFlags Flags = 0;

        [HeapIndex(HeapType.Strings)]
        public uint NameIndex = 0;

        [HeapIndex(HeapType.Blob)]
        public uint SignatureIndex = 0;

    }

    [Flags]
    enum FieldFlags : ushort {
        Private = 0x0001,
        FamAndAssemly = 0x0002,
        Assembly = 0x0003,
        Family = 0x0004,
        FamOrAssemly = 0x0005,
        Public = 0x0006,
        Static = 0x0010,
        InitOnly = 0x0020,
        Literal = 0x0040,
        NotSerialized = 0x0080,
        SpecialName = 0x0200,

        PInvokeImpl = 0x2000,

        RTSpecialName = 0x0400,
        HasFieldMarshal = 0x1000,
        HasDefault = 0x8000,
        HasFieldRva = 0x0100,
    }
}
